//导包， 引入外部文件
const util = require('../../utils/util.js')
const app = getApp()   // 获取App.js
Page({
  /**
   * 页面的初始数据
   */
  data: {//是页面的全局变量
    api: app.globalData.api,   // 全局的API  赋值给页面的api   localhost：8080
    indicatorDots: true,   //指示点
    autoplay: true,       //自动播放
    interval: 4000,      //间隔时间4s
    duration: 2000,     //动画持续时间2s
    imgUrls: [],
    category: [],      //定义全局变量,wxml 里面双大括号取址
    product:[],
    cid: 0             //类别id   初始化为0
  },

  /**
   * 生命周期函数--监听页面加载，是页面的主函数
   */
  onLoad: function (options) {
    /*使得购物车具有加载事件   直接显示购物车数量  不需要点击商品*/
    util.setTabBarBadgeNumber(1,util.getStorageObj('cart').length)
    /**
     * 1.数据库数据 -> java拿到数据库数据 --> 小程序去拿java数据
       2.数据库和java交互是用mybatis   sql 语句
       3.小程序和java交互用的是Http请求 */
       //输入网址是get请求   里面写网站的链接, util.js封装了这个
       //访问这个网址， 拿数据就行了  
       //回调函数function   回调参数resp
       //请求网址后会得到响应， resp是拿到的响应数据
    util.httpGet('/wx/index', resp=>{
      //util.alert(resp)
      //this 指的是当前的page页面，data，里面的category
      this.data.category = resp.categoryBeans
      //假如数据不为空
      if(this.data.category&& this.data.category.length>0){
        this.data.cid = this.data.category[0].id
      }
      this.data.product = resp.productBeans
      util.getStorageCart('cart','id','count', this.data.product)/*把同类商品折合计数 count*/
      this.data.imgUrls = resp.hot
      this.setData(this.data) // 把数据更新到页面上
    })
  },
//小程序js语句末尾可以不加分号   行业默认是不加分号
//网页js   行业默认是加 “;”
  clickCategory: function(e){  //当前对象
   this.data.cid = e.currentTarget.dataset.item.id   // 拿到类别id了 ， 怎么获取列表？http请求
   util.httpGet('/wx/index?cid='+this.data.cid, resp=>{ //访问地址
     this.data.product = resp.productBeans // 拿数据
     util.getStorageCart('cart', 'id', 'count', this.data.product)
     this.setData(this.data) // 把数据更新到页面上
   })
   },

  addCart: function (e) {// 定义个局部变量
    var item = e.currentTarget.dataset.item
    //第五个参数是   触发回调函数
    var len = util.enableAddStorageObj('cart', 'id', 'num', item, function () {
      util.alert(item.product + '卖完啦!')
    })// 括号里面是购物车   可以存东西
    util.setTabBarBadgeNumber(1, len)
    util.getStorageCart('cart', 'id', 'count', this.data.product)
    this.setData(this.data)
  },
//购物车--
  reduceCart: function(e){
    var item = e.currentTarget.dataset.item
    //
    var len = util.delStorageObj('cart','id',item.id)
    util.setTabBarBadgeNumber(1, len)
    util.getStorageCart('cart', 'id', 'count', this.data.product)
    this.setData(this.data)
  },
  //哪个选项被点击了，再次调用主函数 onload
  onTabItemTap: function () {//调用函数后重新折合
    util.getStorageCart('cart', 'id', 'count', this.data.product)
    this.setData(this.data)
  },
  //打开新页面   不带参数
  //startPage: function(){
  //  util.redirect('detail')
  //},
  //带参数
  startPage: function (e) {   //e  是item
    util.redirect({
      url: 'detail',
      product: e.currentTarget.dataset.item.product,
      logo: e.currentTarget.dataset.item.logo,
      price: e.currentTarget.dataset.item.price  // ...
    })
  
  },


  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
    
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    
  }
})